import 'dart:ui';

import 'package:chewie/chewie.dart';
import 'package:flutter/material.dart';
import 'package:flutter_html/flutter_html.dart';
import 'package:magic_car/common/fileread.dart';
import 'package:magic_car/common/nodata.dart';
import 'package:magic_car/user/anserdetail.dart';
import 'package:magic_car/util/HttpHelper.dart';
import 'package:magic_car/util/config.dart';
// import 'package:pdf_flutter/pdf_flutter.dart';
import 'package:shared_preferences/shared_preferences.dart';
import 'package:toast/toast.dart';
import 'package:url_launcher/url_launcher.dart';
import 'package:webview_flutter/webview_flutter.dart';

// class CheckStudyInfoPage extends StatefulWidget {
//   // CheckStudyInfoPage({Key key, this.title}) : super(key: key);

//   // final String title;

//   final Map info;
// CheckStudyInfoPage(this.info);
//   @override
//   _MyHomePageState createState() => new _MyHomePageState(this.info);
// }

// class _MyHomePageState extends State<CheckStudyInfoPage> {
//   final Map info;
//   _MyHomePageState(this.info);
//   List formList;
//   ScrollController _controller = new ScrollController();
//   int page = 1;
//   bool end = false;
//   String keyword = "";
//   var imgsLeng = 0;

//   initState() {
//     super.initState();
//     _controller.addListener(() {
//       if (_controller.position.pixels == _controller.position.maxScrollExtent) {
//         print('滑动到了最底部');
//         loadData();
//       }
//     });

//     formList = [];
//    // loadData();
//   }

//   //加载数据
//   loadData() async {
//     // if(keyword!=""){
//     //   print(keyword);
//     // if(end)return;
//     // }
//     if (end) return;
//     Map<String, String> map = new Map();
//     SharedPreferences pref = await SharedPreferences.getInstance();
//     map["id"] = pref.getString('uid');
//     map["page"] = page.toString();
//     map["keyword"] = keyword;
//     print(map);

//     HttpHelper.post(HttpHelper.API_StudyInfo,(data) async {
//       if (data != null) {
//         print(data);
//         print(data["info"].length.toString());
//         if (data["info"].length == 0) {
//           Toast.show('暂无更多数据', context);
//         } else {
//           if (data["code"].toString() == "1") {
//             if (data["info"].length < 10) {
//               setState(() {
//                 end = true;
//               });
//             }
//             if (page > 1) {
//               List add = data["info"];
//               formList.addAll(add);
//               setState(() {
//                 formList = formList;
//               });
//             } else {
//               setState(() {
//                 formList = data["info"];
//                 page = page + 1;
//               });
//             }
//           }
//         }
//       }
//     }, params: map);
//   }

//   Widget buildImgs(item) {
//     List<Widget> tiles = [];

//     Widget content;

//     List items = item["image_url"];
//     print(items.length.toString());

//     for (var i = 0; i < items.length; i++) {
//       //List temp1 = items[i] as List;
//       tiles.add(Padding(
//         padding: new EdgeInsets.fromLTRB(5, 0, 0, 10),
//         child: GestureDetector(
//             onTap: () {
//               // print('点击查看图片');
//               // Navigator.of(context).push(
//               //   NinePicture(items, i),
//               // );
//             },
//             child: Image.network(items[i], width: 100, height: 100)),
//       ));
//     }
//     content = new Wrap(
//         children: tiles //重点在这里，因为用编辑器写Column生成的children后面会跟一个<Widget>[]，
//         //此时如果我们直接把生成的tiles放在<Widget>[]中是会报一个类型不匹配的错误，把<Widget>[]删了就可以了
//         );
//     return content;
//   }

//   Widget buildcontent() {
//     List<Widget> tiles = [];
//     Widget content;
//     if (formList.length > 0) {
//       for (var item in formList) {
//         tiles.add(Padding(
//             padding: new EdgeInsets.fromLTRB(15, 15, 15, 0),
//             child: Container(
//               decoration: new BoxDecoration(
//                 color: Colors.white,
//               ),
//               child: new GestureDetector(
//                   behavior: HitTestBehavior.opaque,
//                   onTap: () {
//                     // Navigator.of(context)
//                     //     .push(new MaterialPageRoute(builder: (_) {
//                     //   return new AnswerdeailPage(item["id"].toString());
//                     // }));
//                   },
//                   child: Column(
//                     mainAxisAlignment: MainAxisAlignment.start,
//                     crossAxisAlignment: CrossAxisAlignment.start,
//                     children: <Widget>[
//                       Padding(
//                         padding: new EdgeInsets.fromLTRB(20, 15, 20, 10),
//                         child: Column(
//                           children: <Widget>[Text(item["name"])],
//                         ),
//                       ),
//                       // item['image_url'].length > 0
//                       //     ? Padding(
//                       //         padding: new EdgeInsets.fromLTRB(5, 10, 20, 10),
//                       //         child: buildImgs(item),
//                       //         // child: Row(
//                       //         //   children: <Widget>[Text('总试题数：16')],
//                       //         // ),
//                       //       )
//                       //     : new Container(height: 0),
//                       Padding(
//                         padding: new EdgeInsets.fromLTRB(20, 10, 20, 10),
//                         child: Row(
//                           children: <Widget>[
//                             Expanded(
//                                 flex: 1,
//                                 child: Text(
//                                   item["created_at"],
//                                   style: TextStyle(
//                                       color: Color.fromRGBO(153, 153, 153, 1),
//                                       fontSize: 13),
//                                 )),
//                             // Expanded(
//                             //   flex: 1,
//                             //   child: Align(
//                             //       alignment: Alignment.centerRight,
//                             //       child: Container(
//                             //           height: 30,
//                             //           child: new RaisedButton(
//                             //             child: Text('我来回答'),
//                             //             textColor:
//                             //                 Color.fromRGBO(27, 182, 251, 1),
//                             //             color: Color.fromRGBO(201, 235, 250, 1),
//                             //             onPressed: () {
//                             //               Navigator.of(context).push(
//                             //                   new MaterialPageRoute(builder: (_) {
//                             //                 return new AnswerdeailPage(item["id"].toString());
//                             //               }));
//                             //             },
//                             //           ))),
//                             // )
//                           ],
//                         ),
//                       ),
//                     ],
//                   )),
//             )));
//       }
//     }
//     content = new Column(
//         children: tiles //重点在这里，因为用编辑器写Column生成的children后面会跟一个<Widget>[]，
//         //此时如果我们直接把生成的tiles放在<Widget>[]中是会报一个类型不匹配的错误，把<Widget>[]删了就可以了
//         );
//     return content;
//   }

//   Widget build(BuildContext context) {
//     return
//         // new MaterialApp(
//         //     title: '结构件',
//         //     home:
//         new Scaffold(
//             appBar: new AppBar(
//               title: new Text(
//                 '学习资料',
//                 style: TextStyle(color: Colors.black),
//               ),
//               backgroundColor: Colors.white,
//               elevation: 0,
//               // backgroundColor: Color.fromRGBO(255, 204, 48, 1),
//             ),

//             body: new Center(
//                 child: Container(
//                     decoration: new BoxDecoration(
//                       color: Color.fromRGBO(238, 238, 238, 1),
//                     ),
//                 //     child:PDF.network(
//                 //   'http://ylz.9ok6.com/addons/chemogu/data/studyinfo/160066381116.docx',
//                 //   height: 300,
//                 //   width: 150,
//                 //   // placeHolder: Image.asset("assets/images/pdf.png",
//                 //   //     height: 200, width: 100),
//                 // ),
//                     // child:FileReaderView(
//                     //  filePath: 'http://ylz.9ok6.com/addons/chemogu/data/studyinfo/160066381116.docx'
//                     // )
//                     // child: WebView(
//                     //   initialUrl: this.info['link_url'],
//                     //   javascriptMode: JavascriptMode.unrestricted, // 使用JS没限制
//                     // )
//                     // child: launch('1111')
//                 ))
//             );
//   }

//   Future<Null> _onRefresh() async {
//     await Future.delayed(Duration(seconds: 3), () {
//       print('refresh');
//       setState(() {
//         page = 1;
//       });
//       loadData();
//     });
//   }
// }
// class LinkTextSpan extends TextSpan {
//   LinkTextSpan({TextStyle style, String url, String text})
//       : super(
//       style: style,
//       text: text ?? url,
//       recognizer: new TapGestureRecognizer()
//         ..onTap = () {
//           launch(url);
//         });
// }
import 'dart:async';
import 'dart:io';
import 'package:flick_video_player/flick_video_player.dart';
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
import 'package:flutter_full_pdf_viewer/full_pdf_viewer_scaffold.dart';
import 'package:path_provider/path_provider.dart';
// import 'package:fijkplayer/fijkplayer.dart';
import 'package:flutter/cupertino.dart';
import 'package:video_player/video_player.dart';
//import 'package:chewie/chewie.dart';


class CheckStudyInfoPage extends StatefulWidget {
  @override
  final Map info;
  CheckStudyInfoPage(this.info);
  _MyAppState createState() => new _MyAppState(this.info);
}

class _MyAppState extends State<CheckStudyInfoPage> {
  final Map info;
  _MyAppState(this.info);
  String pathPDF = '';
 FlickManager flickManager;
  //final FijkPlayer player = FijkPlayer();
  // VideoPlayerController _controller;

  // VideoPlayerController _videoPlayerController1;
  
  // ChewieController _chewieController;

//   VideoPlayerController _videoPlayerController1 = VideoPlayerController.network(
//     'https://flutter.github.io/assets-for-api-docs/videos/butterfly.mp4');

// ChewieController chewieController = ChewieController(
//   videoPlayerController: _controller,
//   aspectRatio: 3 / 2,
//   autoPlay: true,
//   looping: true,
// );
  //final FijkPlayer player = FijkPlayer();
  @override
  void initState() {
    super.initState();
    if (this.info['type'].toString() == "4") {
      flickManager = FlickManager(
      videoPlayerController:
          VideoPlayerController.network(this.info['link_url']),
    );
     // player.setDataSource(this.info['link_url'], autoPlay: true);
    //    _videoPlayerController1 = VideoPlayerController.network(
    //     this.info['link_url']);
    
    // _chewieController = ChewieController(
    //   videoPlayerController: _videoPlayerController1,
    //    aspectRatio: 3/ 2,
    //   autoPlay: true,
    //   allowFullScreen: true
    //   //fullScreenByDefault: true
    //   //looping: true,
      
    
    // );
      // _controller = VideoPlayerController.network(this.info['link_url'])
      // ..initialize().then((_) {
      //   _controller.play();
      //   setState(() {});
      // });
     // player.setDataSource(this.info['link_url'], autoPlay: true);
    } else {
      createFileOfPdfUrl().then((f) {
        setState(() {
          pathPDF = f.path;
          print(pathPDF);
        });
      });
    }
  }

  void dispose() {
    super.dispose();
    if (this.info['type'].toString() == "4") {
      flickManager.dispose();
     // _videoPlayerController1.dispose();
     // _chewieController.dispose();
     // _controller.dispose();
     // player.release();
    }
  }

  Future<File> createFileOfPdfUrl() async {
    // final url = "http://africau.edu/images/default/sample.pdf";
    String url = info['link_url'];
    final filename = url.substring(url.lastIndexOf("/") + 1);
    var request = await HttpClient().getUrl(Uri.parse(url));
    var response = await request.close();
    var bytes = await consolidateHttpClientResponseBytes(response);
    String dir = (await getApplicationDocumentsDirectory()).path;
    File file = new File('$dir/$filename');
    await file.writeAsBytes(bytes);
    return file;
  }

  @override
  Widget build(BuildContext context) {
    //  return PDFViewerScaffold(
    //     appBar: AppBar(
    //       title: Text("Document"),
    //       actions: <Widget>[
    //         IconButton(
    //           icon: Icon(Icons.share),
    //           onPressed: () {},
    //         ),
    //       ],
    //     ),
    //     path: pathPDF);
    return Scaffold(
      appBar: AppBar(
        elevation: 0,
        titleSpacing: 0,
        title: const Text('学习资料',style: TextStyle(fontSize: Config.title_size),), backgroundColor: Colors.white),
      body: Center(
        child:
        Padding(padding: new EdgeInsets.fromLTRB(0, 0, 0, 0),child:
        FlickVideoPlayer(
        flickManager: flickManager
      )),
        // FijkView(
        //     player: player,
        //   ),
    //     child:
    //     Container(
    //       height: 500,
    //       child:
    //     new Chewie(
    // controller: _chewieController,
    
    //     ))
        //child:
    //     child: this.info['type'].toString() == "4"
    //         ? 
    //        new Chewie(
    //     new VideoPlayerController.network(this.info['link_url']),
    //     aspectRatio: 16 / 9,
    //     autoPlay: !true,
    //     looping: true,
    //     showControls: true,
    //     // 占位图
    //     placeholder: new Container(
    //         color: Colors.grey,
    //     ),

    //     // 是否在 UI 构建的时候就加载视频
    //     autoInitialize: !true,

    //     // 拖动条样式颜色
    //     materialProgressColors: new ChewieProgressColors(
    //         playedColor: Colors.red,
    //         handleColor: Colors.blue,
    //         backgroundColor: Colors.grey,
    //         bufferedColor: Colors.lightGreen,
    //     ),
    // ),
           
    //         :
           
    //         RaisedButton(
    //             child: Text("文件缓冲完成，点击预览！"),
    //             onPressed: () => Navigator.push(
    //               context,
    //               MaterialPageRoute(builder: (context) => PDFScreen(pathPDF)),
    //             ),
    //           ),
      ),
    );
  }
}

class PDFScreen extends StatelessWidget {
  String pathPDF = "";
  PDFScreen(this.pathPDF);

  @override
  Widget build(BuildContext context) {
    return PDFViewerScaffold(
        appBar: AppBar(title: Text("学习资料"), backgroundColor: Colors.white),
        path: pathPDF);
  }
}
